package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyDemo2 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("image.jpg");
        FileOutputStream fos=new FileOutputStream("image_co.jpg");
        long start=System.currentTimeMillis();
        byte[]data=new byte[1024*10];
        int len;
        while ((len=fis.read(data))!=-1){
            fos.write(data,0,len);
        }
        long end=System.currentTimeMillis();
        System.out.println("复制完毕，耗时:"+(end-start)+"ms");
        fis.close();
        fos.close();



        /*FileInputStream fis=new FileInputStream("image.jpg");
        FileOutputStream fos=new FileOutputStream("image_cp.jpg");

        long start=System.currentTimeMillis();
        byte[]data=new byte[1024*10];
        int len;
        while ((len=fis.read(data))!=-1){
            fos.write(data,0,len);
        }
        long end=System.currentTimeMillis();
        System.out.println("写出完毕!耗时:"+(end-start)+"ms");
        fis.colse();
        fos.colse();

         */

        /*
        InputStream超类中定义了块读取数据的方法: intiread(byte[] data)
        一次性读取给定的字节数组data总长度的字节量，并存入到字节数组中，返回值表示实际读取到了多少个字节，若返回-1表示读出了末尾

        OutputStream超类上也定义了块写字节的方法。 void write(bute ] data)
        一次性将给定的字节数组data中的所有字节写出

        void write(byte[] data int offset,int len)
        一次性将给定的字节数组data从下标offset处开始的连续len个字节写出
        */

        /*long start=System.currentTimeMillis();
        byte[]data=new byte[1024*10];
        while (fis.read(data)!=-1){
            fos.write(data);
        }
        long end=System.currentTimeMillis();
        System.out.println("写出完毕!耗时:"+(end-start)+"ms");

        fis.close();
        fos.close();

         */
    }
}
